import * as echarts from 'echarts'
import moment from 'moment'

// console.log(moment('2023-10-30 08:42:34').unix(), moment('2023-10-30 09:42:34').unix(), moment('2023-10-30 09:42:34').unix() - moment('2023-10-30 08:42:34').unix())

 var colors = ['#00ff00', '#ff0000', '#ffff00', '#0000ff', 'black']
// #0000cc
 var state = ['RUN', 'DOWM', 'IDLE', 'PM', 'OFF']

 let _terget = {}
export const chartOptios = (data, machineId, index, dataTime) => {
  if(index === 0){
    _terget = {}
    data.forEach(element => {
      _terget[element.eqpId] = []
      element.oeeBMachineStatusList.forEach((item) => {
        const time1 = JSON.parse(JSON.stringify(item.data[1]))
        const time2 = JSON.parse(JSON.stringify(item.data[2]))
        item.data[0] = 0
        item.data[1] = time1 === `${dataTime} 08:30:00` ? 0 : moment(time1).unix() - moment(`${dataTime} 08:30:00`).unix()
        item.data[2] = moment(time2).unix() - moment(`${dataTime} 08:30:00`).unix()
        _terget[element.eqpId].push({
          itemStyle: { normal: { color: item.color } },
          name: item.status,
          value: item.data
        })
      })
    })
  }
  return {
    color: colors,
    tooltip: {
      position: function (point) {
        var pointX = point[0] // x坐标位置
        var pointY = point[1] // y坐标位置
        // return [pointX + 50, pointY]
        return [pointX - 250, pointY]
    },
    // 消报警时长: ${params.value[9]}<br/>
      formatter: function (params) {
        return `
        设备ID: ${params.value[3]}<br/>
        设备状态: ${params.value[14]}<br/>
        R Code描述: ${params.value[13]}(${params.value[4]})<br/>
        开始时间: ${moment((moment(`${dataTime} 08:30:00`).unix() + params.value[1])  * 1000).format('YYYY-MM-DD HH:mm:ss')}<br/>
        结束时间: ${moment((moment(`${dataTime} 08:30:00`).unix() + params.value[2])  * 1000).format('YYYY-MM-DD HH:mm:ss')}<br/>
        持续时长: ${params.value[6]}<br/>
        读报警时间: ${params.value[5]}<br/>
        报警文本: ${params.value[8]}<br/>
        报警ID: ${params.value[9]}<br/>
        源报警ID: ${params.value[10]}<br/>
        源报警设备类型: ${params.value[12]}<br/>
        `
      }
    },
    grid: {
      left: '0',
      right: '0',
      top: '0',
      bottom: '0'
      // containLabel: true
    },
    xAxis: {
      min: 0, // x轴零刻度对应的实际值
      max: 'dataMax',
      show: false, // 不显示坐标轴线、坐标轴刻度线和坐标轴上的文字
      axisTick: {
        show: false // 不显示坐标轴刻度线
      },
      axisLine: {
        show: false // 不显示坐标轴线
      },
      axisLabel: {
        show: false // 不显示坐标轴上的文字
      },
      splitLine: {
        show: false // 不显示网格线
      }
    },
    yAxis: {
      data: ['WAN0', 'WAN1'],
      min: 0,
      // max:  function (value) {
      //   return value.max + 20
      // },
      show: false, // 不显示坐标轴线、坐标轴刻度线和坐标轴上的文字
      axisTick: {
        show: false // 不显示坐标轴刻度线
      },
      axisLine: {
        show: false // 不显示坐标轴线
      },
      axisLabel: {
        show: false // 不显示坐标轴上的文字
      },
      splitLine: {
        show: false // 不显示网格线
      }
    },
    series: [
      // 用空bar来显示四个图例
      // { name: state[0], type: 'bar', data: [] },
      // { name: state[1], type: 'bar', data: [] },
      // { name: state[2], type: 'bar', data: [] },
      // { name: state[3], type: 'bar', data: [] },
      {
        type: 'custom',
        renderItem: function (params, api) {
          var categoryIndex = api.value(0)
          var start = api.coord([api.value(1), categoryIndex])
          var end = api.coord([api.value(2), categoryIndex])
          var height = 50

          return {
            type: 'rect',
            shape: echarts.graphic.clipRectByRect({
              x: start[0],
              y: start[1] - height / 2,
              width: end[0] - start[0],
              height: height
            }, {
              x: params.coordSys.x,
              y: params.coordSys.y,
              width: params.coordSys.width,
              height: params.coordSys.height
            }),
            style: api.style()
          }
        },
        encode: {
          x: [1, 2],
          y: 0
        },
        data: _terget[machineId]
        // data: a
      }
    ]
  }
}

let a = [
  {
    itemStyle: { normal: { color: colors[2] } },
    name: 'RUN',
    value: [0, 0, 100, 'H05-MBB-01', '辅材料故障', '2023/3/14 19:07:01', '2023/3/14 19:49:05', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  },
  {
    itemStyle: { normal: { color: colors[4] } },
    name: 'PM',
    value: [0, 100, 120, 'H05-MBB-01', '辅材料故障', '2023/3/14 19:07:01', '2023/3/14 19:49:05', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  },
  {
    itemStyle: { normal: { color: colors[3] } },
    name: 'DOWM',
    value: [0, 120, 150, 'H05-MBB-01', '辅材料故障', '2023/3/14 19:07:01', '2023/3/14 19:49:05', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  },
  {
    itemStyle: { normal: { color: colors[0] } },
    name: 'RUN',
    value: [0, 150, 200, 'H05-MBB-01', '辅材料故障', '2023/3/14 19:07:01', '2023/3/14 19:49:05', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  },
  {
    itemStyle: { normal: { color: colors[3] } },
    name: 'DOWM',
    value: [0, 200, 290, 'H05-MBB-01', '辅材料故障', '2023/3/14 19:07:01', '2023/3/14 19:49:05', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  },
  {
    itemStyle: { normal: { color: colors[4] } },
    name: 'PM',
    value: [0, 290, 300, 'H05-MBB-01', '辅材料故障', '2023/3/14 19:07:01', '2023/3/14 19:49:05', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  },

  {
    itemStyle: { normal: { color: colors[1] } },
    name: 'IDLE',
    value: [0, 300, 370, 'H05-MBB-01', '辅材料故障', '2023/3/14 19:07:01', '2023/3/14 19:49:05', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  },
  {
    itemStyle: { normal: { color: colors[2] } },
    name: 'DOWM',
    value: [0, 370, 380, 'YEFUEWUFHREUFG', '大佛大佛', '370', '380', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  },
  {
    itemStyle: { normal: { color: colors[0] } },
    name: 'RUN',
    value: [0, 380, 850, 'H05-MBB-01', '辅材料故障', '2023/3/14 19:07:01', '2023/3/14 19:49:05', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  },
  {
    itemStyle: { normal: { color: colors[3] } },
    name: 'PM',
    value: [0, 850, 852, 'H05-MBB-01', '辅材料故障', '2023/3/14 19:07:01', '2023/3/14 19:49:05', '2023/3/14 19:40:05', '0.70HR (42.4m)', '0.15HR (9.0m)', '41助焊剂浸泡池余量不足', '2029', 'H05-MBB-04L', 'MBB-MBBL']
  }
]